﻿using BCCommon;
using BCDto.MakeStaticPagingComponent.SystemServiceListing;
using System;
using System.Collections.Generic;
using System.Text;

namespace BCService.MakeStaticPagingComponent.SystemServiceListingService
{
    /// <summary>
    /// 系统服务列表信息服务接口
    /// </summary>
    public interface ISystemServiceListingService
    {
        /// <summary>
        /// 获取系统服务返回类型标记
        /// </summary>
        /// <param name="systemServiceListingId">系统服务列表信息Id</param>
        /// <returns></returns>
        IDictionary<string, string> GetSystemServiceResultTags(int systemServiceListingId);
        /// <summary>
        /// 获取系统服务列表信息
        /// </summary>
        /// <param name="systemServiceListingId">系统服务列表信息Id</param>
        /// <returns></returns>
        SystemServiceListingDto Get(int systemServiceListingId);
        /// <summary>
        /// 获取系统服务列表
        /// </summary>
        /// <param name="websiteTemplateId">网站模板Id</param>
        /// <returns></returns>
        IEnumerable<SystemServiceListingDto> Query(int websiteTemplateId);
        /// <summary>
        /// 获取系统服务列表
        /// </summary>
        /// <param name="websiteTemplateId">网站模板Id</param>
        /// <param name="displayName">服务展示名称</param>
        /// <param name="ascending">排序</param>
        /// <param name="index">当前页码</param>
        /// <param name="size">每页数据条数</param>
        /// <returns></returns>
        PageableList<SystemServiceListingDto> Query(int websiteTemplateId,string displayName, bool? ascending, int index = 1, int size = 20);
        /// <summary>
        /// 添加系统服务列表信息
        /// </summary>
        /// <param name="systemServiceListingRequestDto">系统服务列表信息</param>
        /// <returns></returns>
        SystemServiceListingDto Add(SystemServiceListingRequestDto systemServiceListingRequestDto);
        /// <summary>
        /// 更新系统服务列表信息
        /// </summary>
        /// <param name="systemServiceListingId">系统服务列表信息Id</param>
        /// <param name="systemServiceListingRequestDto">系统服务列表信息</param>
        /// <returns></returns>
        SystemServiceListingDto Update(int systemServiceListingId, SystemServiceListingRequestDto systemServiceListingRequestDto);
        /// <summary>
        /// 删除系统服务列表信息
        /// </summary>
        /// <param name="systemServiceListingId">系统服务列表Id</param>
        void Delete(int systemServiceListingId);
    }
}
